package J.算法.动态规划;

import java.util.Map;

public class _剑指Offer42连续子数组的最大和 {

    /**
     * 暴力 分别从长度为1 到全数组进行计算
     * ==失败
     * @param nums
     * @return
     */
    public int maxSubArray(int[] nums) {

        int res = Integer.MIN_VALUE;
        int count =0;
        for (int i = 1; i < nums.length; i++) {
            count += nums[i];
        }


        return 0;

    }
    /**
     * 动态规划
     *
     * 只关乎 cur 及num【i】
     * 直接在num上修改 所以nums[i-1]就是dp【i-1】
     */
    public int maxSubArray1(int[] nums) {
        int cur = nums[0];
        for (int i = 1; i < nums.length; i++) {
            nums[i] += Math.max(nums[i-1],0);//原地修改 计算出 dp每一项

            cur = Math.max(cur,nums[i]);//更新变量

        }
        return cur;

    }
}
